package com.yuanjin.util;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;

import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;

/*
 * 类LoadataThread
 * 功能：上传数据的线程
 * 参数输入�?
 * map：所要传输的账号、密码等键�?�?
 * handler：用于子线程向主线程反馈信息
 * path:�?��调用的服务器处理方向路径
 */
public class LoaddataThreadSave extends Thread {
	private Map<String, String> map = new HashMap<String, String>();
	private Handler handler; 
	private String path;
	private Vector<Object> returnVector;
	private int sum = 0;

	public LoaddataThreadSave(Map<String, String> map, Handler handler, String path) {
		this.map = map;
		this.handler = handler;
		this.path = path;
	}
	
//	public LoaddataThread(Map<String, String> map, String path) {
//		this.map = map;
//		this.path = path;
//	}

	@Override
	public void run() {
		HttpUpload httpUpload = new HttpUpload();
		String result = httpUpload.sendHttpClientPost(path, map, "utf-8");

		/**** 起初使用定长数组接受数据 ****/
		// String[] resultarray = new String[2];
		// resultarray = result.split("@@@");
		// substring(index):截取该位置（包括该位置）后所有字符
		// ﻿因为返回的字符前带有一个字符?，如:"?哈哈",因此需要将其去掉,而且第一个有效字符位于第4位
		// result = resultarray[0].substring(3);//
		// 经多次实验，从第四位截取才真正完全取到服务器发送下来的数据，否则会带有一些空格的字符

		/**** 而由于传送下来的数据量多少未知，因而使用长度可变的vector来接收会更好 ****/
		// Vector<Object> vector;// Vector定义，为共用一个vector，改为static型
		// 实现数组变vector
		returnVector = new Vector<Object>(Arrays.asList(result.split("@@@")));
		result = returnVector.get(0).toString().substring(3);// 截取"验证通过"等反馈字段

		Log.e("logtest", result + "nihao");
		
		Looper.prepare();
		//handler= new Handler();
		if (result.equals("注册成功")) {
			handler.sendEmptyMessage(1);
		} else if (result.equals("用户名已存在")) {
			handler.sendEmptyMessage(2);
		} else if (result.equals("用户名不存在")) {
			handler.sendEmptyMessage(3);
		} else if (result.equals("密码不正确")) {
			handler.sendEmptyMessage(4);
		} else if (result.equals("验证通过")) {
			sum = Integer.parseInt(returnVector.get(1).toString());// 截取数据总数
			String userdata = returnVector.get(2).toString();// 第三段则为存储了数据的字符串段
			Log.e("sum", Integer.toString(sum));
			Log.e("logtest", returnVector.get(1) + "第二部分");
			Log.e("logtest", returnVector.get(2) + "第三部分");
			Message msg = new Message();
			msg.what = 5;
			msg.obj = userdata;
			msg.arg1 = sum;
			handler.sendMessage(msg);// 使用Handler传送数据
			// handler.sendEmptyMessage(5);
		}
	}

}